
package com.pangus.ims.wms;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import com.pangus.ims.bs.BsConstants;

public class WmsConstants extends BsConstants {

	/** BigDecimal 精度 */
	public static final int PRECISION = 3;

	/** 1 */
	public static final BigDecimal STAT_FAILED = BigDecimal.ONE;
	/** 2 */
	public static final BigDecimal STAT_SUCCESS = BigDecimal.valueOf(2);

	public static final String RESULT_CODE_CONFIRM = "100";
	public static final String RESULT_CODE_CONFIRM_MAX_STORE = "101"; // 超过最大库存
	public static final String RESULT_CODE_CONFIRM_EXPIRATION_DATE = "102"; // 超出保质期
	public static final String RESULT_CODE_CONFIRM103 = "103";// confirm拓展
	public static final String RESULT_CODE_CONFIRM104 = "104";
	public static final String RESULT_CODE_CONFIRM105 = "105";
	public static final String RESULT_CODE_CONFIRM106 = "106";
	public static final String RESULT_CODE_OK = "200";
	public static final String RESULT_CODE_OK_ROHD = "201";// 收料单所有物料已收料完成
	public static final String RESULT_CODE_OK_MBOX = "202";//科技所有物料已出货完成
	public static final String RESULT_CODE_OK_MBOXING = "203"; //科技物料部分出货完成 继续出货
	
	public static final String RESULT_CODE_INPUT = "300";
	public static final String RESULT_CODE_INPUT_MBOX = "301";
	//public static final String RESULT_CODE_INPUT_MBOXING = "302";
	public static final String RESULT_CODE_ERROR = "400";
	public static final String RESULT_CODE_ERROR_MBOX = "401";
	public static final Integer PRODUCT_CLASS_WMS = 2;

	public static final String SYSTEM_IMS_WMS_CODE = "SYSTEM_IMS_WMS";
	public static final String SYSTEM_IMS_BS_CODE = "SYSTEM_IMS_BS_V5";
	public static final String SYSTEM_IMS_CUST_CODE = "SYSTEM_IMS_CUST";

	/** 收料类型 RO_TYPE 6、无关联ERP收料 */
	public static final int RO_TYPE_NOT_CONNECT_ERP = 6;

	/** 收料状态 RO_STAT 1、未完成 */
	public static final int RO_STAT_FAILED = 1;
	/** 收料状态 RO_STAT 2、已完成 */
	public static final int RO_STAT_SUCCESS = 2;

	/** 来源 BOX_SRC_TYPE 1、手动创建 */
	public static final int BOX_SRC_TYPE_HANDLE = 1;
	/** 来源 BOX_SRC_TYPE 2、供应商门户 */
	public static final int BOX_SRC_TYPE_SUP = 2;
	/** 来源 BOX_SRC_TYPE 3、第三方系统 */
	public static final int BOX_SRC_TYPE_OTHER = 3;

	/** 收料方式 SCAN_MODE 1、未知 */
	public static final int SCAN_MODE_UNKNOWN = 1;
	/** 收料方式 SCAN_MODE 2、扫描序列号LPN */
	public static final int SCAN_MODE_SEQLPN = 2;
	/** 收料方式 SCAN_MODE 3、扫描容器LPN */
	public static final int SCAN_MODE_CONTAINER = 3;
	/** 收料方式 SCAN_MODE 4、扫描物料编码 */
	public static final int SCAN_MODE_MTRL = 4;

	/** 策略 --是否 1、是 (对接) */
	public static final int STRATEGY_IS = 1;
	/** 策略 --是否 2、否 (不对接) */
	public static final int STRATEGY_IS_not = 2;
	/** 策略 --核对 1、不核对 */
	public static final int STRATEGY_IS_NOT_CHECK = 1;
	/** 策略 --核对 2、核对 */
	public static final int STRATEGY_IS_CHECK = 2;

	/** 收料策略 --收料流程 1、先收后检 */
	public static final int RO_STRATEGY_RO_PROCESS_FIRST_RO_LAST_CHECK = 1;
	/** 收料策略 --收料流程 2、先检后收 */
	public static final int RO_STRATEGY_RO_PROCESS_FIRST_CHECK_LAST_RO = 2;

	/** 收料策略 --超过最高库存收料管控方式 1、 不管控 */
	public static final int RO_STRATEGY_MORE_THAN_MAX_STORE_NUM_MANGE_NONE = 1;
	/** 收料策略 --超过最高库存收料管控方式 2、提示允许收料 */
	public static final int RO_STRATEGY_MORE_THAN_MAX_STORE_NUM_MANGE_TIP = 2;
	/** 收料策略 --超过最高库存收料管控方式 3、不允许收料 */
	public static final int RO_STRATEGY_MORE_THAN_MAX_STORE_NUM_MANGE_REJECT = 3;

	/** WMSDTO构造方法默认值赋值，true、赋值 */
	public static final boolean WMSDTO_DEFAULT_TRUE = true;
	/** WMSDTO构造方法默认值赋值，false、不赋值 */
	public static final boolean WMSDTO_DEFAULT_FALSE = false;

	/** String类型默认值Y */
	public static final String WMSDTO_DEFAULT_YES = "Y";
	/** String类型默认值N */
	public static final String WMSDTO_DEFAULT_NO = "N";

	/** 后缀，_moid,mes生产收料使用 */
	public static final String SUFFIX_MOID = "-MOID";
	
	/** 收料策略对象 */
	public static class RoStrategy {
		/** 收料策略配置名称 */
		public static enum configName {
			/** 收料流程 */
			CONFIG_RO_PROCESS(1),
			/** 供应商对照码核对 */
			CONFIG_SUP_TF_CHECK(1),
			/** 客户对照码核对 */
			CONFIG_CUST_TF_CHECK(1),
			/** 制造商对照码核对 */
			CONFIG_MF_TF_CHECK(1),
			/** 超过最高库存收料管控方式 */
			CONFIG_MAX_STORELOC_MANAGE_TYPE(1),
			/** 超过保质期收料管控方式 */
			CONFIG_MORE_THAN_EXPIRE_DATE_MANAGE_TYPE(1),
			/** 红牌物料收料管控方式 */
			CONFIG_RED_MTRL_RO_MANAGE_TYPE(1),
			/** 收料第三方交易类型 */
			CONFIG_RO_TRX_TYPE(""),
			/** 入库第三方交易类型 */
			CONFIG_MES_TRX_TYPE(""),
			/** 物料编码收料自动生成批次号 */
			MTRL_RO_LOTNO_AUTO(2),
			/** 自动生成批次号规则 */
			CONFIG_AUTO_PN_RULE(""),
			/** 策略配置父级名称 */
			WMS_RO_TYPE("WMS_RO_TYPE");

			private Object dftVal;

			private configName(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 收料策略 对照码核对管控方式 */
		public static class CodeCheck {
			/** 1、不管控 */
			public static final int NONE = 1;
			/** 2、部分管控 */
			public static final int PART = 2;
			/** 3、严格管控 */
			public static final int ABSOLUTE = 3;
		}
	}

	/** 上架策略对象 */
	public static class PutAwayStrategy {
		public static enum ConfigCode {
			/** 物料允许存放多个储位 */
			CONFIG_MTRL_PUT_STORELOC_TYPE(2),
			/** 绑定储位管控模式 */
			CONFIG_BIND_STORELOC_TYPE(1),
			/** 自动绑定默认储位 */
			CONFIG_AUTO_BIND_DEFAULT_STORELOC(1);
			
			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 物料允许存放多个储位 */
		public static final class CONFIG_MTRL_PUT_STORELOC_TYPE {
			/** 1、允许 */
			public static final Integer ALLOW = 1;
			/** 2、不允许 */
			public static final Integer NOT = 2;
		}

		/** 自动绑定默认储位 */
		public static final class CONFIG_AUTO_BIND_DEFAULT_STORELOC {
			/** 1、绑定 */
			public static final Integer BIND = 1;
			/** 2、不绑定 */
			public static final Integer NOT = 2;
		}

		/** 绑定储位管控模式 */
		public static final class CONFIG_BIND_STORELOC_TYPE {
			/** 1、不管控 */
			public static final int NONE = 1;
			/** 2、指定物料 */
			public static final int POINT_MTRL = 2;
			/** 3、维护指定 */
			public static final int MAINTAIN_POINT = 3;
		}

	}

	/** 入库策略 */
	public static class InstoreStrategy {
		public static enum ConfigCode {
			/** 入库批次管理方式 */
			CONFIG_SCFM_LOTNO_MG_TYPE(InstoreStrategy.CONFIG_SCFM_LOTNO_MG_TYPE.SCFM_ID),
			/** 保税管控粒度 */
			CONFIG_BONDED_MANAGE_TYPE(InstoreStrategy.CONFIG_BONDED_MANAGE_TYPE.STORE),
			/** 启用入库确认 */
			STORAGE_CONFIRM_ENABLE(InstoreStrategy.STORAGE_CONFIRM_ENABLE.IS);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 入库批次管理方式策略 */
		public static final class CONFIG_SCFM_LOTNO_MG_TYPE {
			/** 1:入库确认批号-SCFM_ID */
			public static final int SCFM_ID = 1;
			/** 2:生产批次-LOTNO */
			public static final int LOTNO = 2;
			/** 3:D/C-DC */
			public static final int DC = 3;
		}

		/** 保税管控粒度 */
		public static final class CONFIG_BONDED_MANAGE_TYPE {
			/** 1:仓库 */
			public static final int STORE = 1;
			/** 2:物料+仓库 */
			public static final int MTRL_AND_STORE = 2;
		}

		/** 启用入库确认策略 */
		public static final class STORAGE_CONFIRM_ENABLE {
			/** Y 启用 */
			public static final String IS = "Y";
			/** N 不启用 */
			public static final String NOT = "N";
		}
	}

	/** 第三方交易策略 */
	public static class ThirdTrxStrategy {
		public static enum ConfigCode {
			/** 物料交易模式 */
			CONFIG_MTRL_QUEUE_TYPE(ThirdTrxStrategy.CONFIG_MTRL_QUEUE_TYPE.MTRL),
			/** LPN分拆与第三方交易 */
			CONFIG_LPN_PART_THIRD_TRAN(ThirdTrxStrategy.CONFIG_LPN_PART_THIRD_TRAN.IS);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 物料交易模式策略 */
		public static final class CONFIG_MTRL_QUEUE_TYPE {
			/** 1 物料 */
			public static final Integer MTRL = 1;
			/** 2 物料+批次 */
			public static final Integer MTRL_LOTNO = 2;
			/** 3 物料+SKU */
			public static final Integer MTRL_SKU = 3;
			/** 4 物料+批次+SKU */
			public static final Integer MTRL_LOTNO_SKU = 4;
		}

		/** LPN分拆与第三方交易策略 */
		public static final class CONFIG_LPN_PART_THIRD_TRAN {
			/** 1 交易 */
			public static final Integer IS = 1;
			/** 2 不交易 */
			public static final Integer NOT = 2;
		}
	}

	/** 调拨策略 */
	public static class TransferStrategy {
		public static enum ConfigCode {
			/** 调拨第三方交易模式 */
			CONFIG_TRANSFER_THIRD_TRX_TYPE(TransferStrategy.CONFIG_TRANSFER_THIRD_TRX_TYPE.IN_AND_OUT),
			/** 调拨模式 */
			CONFIG_ALLOT_MODE(TransferStrategy.CONFIG_ALLOT_MODE.BAN);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 调拨第三方交易模式策略 */
		public static final class CONFIG_TRANSFER_THIRD_TRX_TYPE {
			/** 1 单笔 */
			public static final Integer SINGLE = 1;
			/** 2 调入调出 */
			public static final Integer IN_AND_OUT = 2;
		}

		/** 调拨模式策略 */
		public static final class CONFIG_ALLOT_MODE {
			/** 1:禁止互调 */
			public static final Integer BAN = 1;
			/** 2:双向 */
			public static final Integer TWO_WAY = 2;
			/** 3 :保税仓转非保税仓 */
			public static final Integer TURN = 3;
		}

	}

	/** 虚拟库范围策略 */
	public static class VmRangeStrategy {
		public static enum ConfigCode {
			/** 虚拟库编码 */
			CONFIG_VM_CODE("");

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		public static enum ConfigTypeCode {
			/** 生产出库单 */
			WMS_PRODUCT_OUT_MN,
			/** 其它出库单 */
			WMS_OTHER_OUT_MN,
			/** 自定义申请单 */
			WMS_DEFINE_OUT_MN,
			/** 维修领料单 */
			WMS_REPIRE_GET_MTRL,
			/** 研发领料单 */
			WMS_DEV_GET_MTRL
		}
	}

	/** 已确认 */
	public static class IsStoreCfm {
		/** Y：已确认 */
		public static final String IS = "Y";
		/** N：未确认 */
		public static final String NOT = "N";
	}

	/** 送检状态 */
	public static class SrqcStat {
		/** 1：未送检 */
		public static final Integer NOT = 1;
		/** 2：已送检 */
		public static final Integer IS = 2;
	}

	/** 收料LPN中SN获取方式 */
	public static class SnBindType {
		/** 二维码*/
		public static final int WMSROLPNSN_CODE = 1;
		/**导入*/
		public static final int WMSROLPNSN_IMPORT = 2;
	}
	
	/** 单据状态 */
	public static class MnAuditStat {
		/** 0：制单中 */
		public static final Integer MNING = 0;
		/** 1：已提交 */
		public static final Integer COMMIT = 1;
		/** 2：已审核 */
		public static final Integer CHECK = 2;
		/** 3：已关闭 */
		public static final Integer CLOSE = 3;
	}
	
	/** 收料单来源 */
	public static class RosrcType {
		/** 1：手动创建 */
		public static final Integer HANDLE = 1;
		/** 2：供应商门户 */
		public static final Integer SUP = 2;
		/** 3：第三方系统 */
		public static final Integer THIRD = 3;
	}
	
	/** 收料送检状态 */
	public static class SmqcStat {
		/** 1：未完成 */
		public static final BigDecimal FAILED = BigDecimal.ONE;
		/** 2：已完成 */
		public static final BigDecimal SUCCESSED = BigDecimal.valueOf(2);
	}

	/** 收料类型 */
	public static class roType {
		/** 0：不存在的 */
		public static final Integer not_exists = 0;
		/** 1：采购订单收料 */
		public static final Integer po = 1;
		/** 2：客供料收料 */
		public static final Integer cust_mtrl = 2;
		/** 3：无采购订单收料 */
		public static final Integer no_po = 3;
		/** 4：按ASN收料 */
		public static final Integer asn = 4;
		/** 5：其它收料 */
		public static final Integer other = 5;
		/** 6: 无关联ERP收料 */
		public static final Integer no_erp = 6;
		/** 7: 客退品采购订单收料 */
		public static final Integer rma_po = 7;
		/** 8: 客退品无采购订单收料 */
		public static final Integer rma_no_po = 8;
		/** 9: 客退品按ASN收料 */
		public static final Integer rma_asn = 9;
		/** 10: 客退品其他收料 */
		public static final Integer rma_other = 10;
		/** 11: 产品收料 */
		public static final Integer product = 11;
		/** 12: 生产收料 */
		public static final Integer pl = 12;
	}

	/** wms全局策略对象 */
	public static class GlobalStrategy {
		/** wms全局策略配置名称 */
		public static enum configName {
			/** 对接供应商门户 */
			DOCK_SUP(2),
			/** 对接QC */
			DOCK_QC(2),
			/** 对接ERP */
			DOCK_ERP(2),
			/** 对接MES */
			DOCK_MES(2),
			/** 全局策略配置父级名称 */
			WMS_GLOBAL(""),
			
			//ERP接口数据获取可拉取的组织范围。
			DOCK_ERP_BOM(""),
			DOCK_ERP_STORE(""),
			DOCK_ERP_SUP(""),
			/**成品出货单组织*/
			DOCK_ERP_PROD_SELL(""),
			DOCK_ERP_CUST(""),
			/**ERP工单数据组织*/
			DOCK_ERP_MO(""),
			/**ERP工单物料组织*/
			DOCK_ERP_MO_MTRL(""),
			DOCK_ERP_MTRL(""),
			/**账户别名组织*/
			DOCK_ERP_ALIAS(""),
			DOCK_ERP_DEPT("");

			private Object dftVal;

			private configName(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 对接QC */
		public static class DOCK_QC {
			/** 1:对接 */
			public static final Integer DOCKING = 1;
			/** 2:不对接 */
			public static final Integer NOT_DOCKING = 2;
		}
		/** 对接MES */
		public static class DOCK_MES {
			/** 1:对接 */
			public static final Integer DOCKING = 1;
			/** 2:不对接 */
			public static final Integer NOT_DOCKING = 2;
		}
		/** 对接MES */
		public static class DOCK_ERP {
			/** 1:对接 */
			public static final Integer DOCKING = 1;
			/** 2:不对接 */
			public static final Integer NOT_DOCKING = 2;
		}
	}

	/** 是否报废 */
	public static class IsScrap {
		/** Y:是 */
		public static final String IS = "Y";
		/** N:否 */
		public static final String NOT = "N";
	}

	/** 是否红牌 */
	public static class IsRc {
		/** Y:是 */
		public static final String IS = "Y";
		/** N:否 */
		public static final String NOT = "N";
	}

	/** 容器混装模式对象 */
	public static class LpnCrsType {
		/** 1：不管控； */
		public static final Integer None = 1;
		/** 2：单一物料； */
		public static final Integer One = 2;
		/** 3：指定物料； */
		public static final Integer Appoint = 3;
	}

	/** 容器用途 对象 */
	public static class lpnUseType {
		/** 0：不管控 */
		public static final Integer none = 0;
		/** 1：上架 */
		public static final Integer putaway = 1;
		/** 0：不管控 */
		public static final Integer NONE = 0;
		/** 1：上架 */
		public static final Integer PUTAWAY = 1;
	}

	/** 容器嵌套模式 对象 */
	public static class lpnNestType {
		/** 0：未知 */
		public static final Integer unknown = 0;
		/** 1：不允许 */
		public static final Integer notAllow = 1;
		/** 2：允许 */
		public static final Integer allow = 2;
	}

	/** 标识状态 */
	public static final class IoType {
		/** I 入 */
		public static final String I = "I";
		/** O 出 */
		public static final String O = "O";
	}

	/** 容器位置状态 对象 */
	public static class lpnLocStat {
		/** 1：在库 */
		public static final Integer inStoreloc = 1;
		/** 2：出库 */
		public static final Integer outStoreloc = 2;
		/** 1：在库 */
		public static final Integer IN_STORELOC = 1;
		/** 2：出库 */
		public static final Integer OUT_STORELOC = 2;
	}

	/** lpn注册表-来源 对象 */
	public static class regSRCType {
		/** 1：手动创建 */
		public static final Integer handle = 1;
		/** 2：外部导入 */
		public static final Integer outImport = 2;
		/** 3：供应商门户 */
		public static final Integer sup = 3;
	}

	/** 入库确认类型 对象 */
	public static class ScfmType {
		/** 1：来料入库确认； */
		public static final Integer incomingMtrl = 1;
		/** 2：产品入库确认； */
		public static final Integer product = 2;
		/** 3：退料入库确认； */
		public static final Integer returnMtrl = 3;
	}

	/** 品质确认状态 对象 */
	public static class QcScfmStat {
		/** 0：未知 */
		public static final Integer unknown = 0;
		/** 1：入库 */
		public static final Integer instore = 1;
		/** 2：拒收 */
		public static final Integer reject = 2;
		/** 3：报废 */
		public static final Integer scrap = 3;
		/** 4：标本 */
		public static final Integer specimen = 4;
	}

	/** 质量状态 对象 */
	public static class QltyStat {
		/** 1：未知 */
		public static final Integer unknown = 1;
		/** 2：良品 */
		public static final Integer good = 2;
		/** 3：不良品 */
		public static final Integer bad = 3;
		/** 1：未知 */
		public static final Integer UNKNOWN = 1;
		/** 2：良品 */
		public static final Integer GOOD = 2;
		/** 3：不良品 */
		public static final Integer BAD = 3;
	}

	/** qrcode 字段key */
	public static final String QRCODE_KEY_LPN = "LPN";
	public static final String QRCODE_KEY_MTRL_CODE = "MTRL_CODE";
	public static final String QRCODE_KEY_MTRL_DESC = "MTRL_DESC";
	public static final String QRCODE_KEY_SUP_CODE = "SUP_CODE";
	public static final String QRCODE_KEY_SUP_MTRL_CODE = "SUP_MTRL_CODE";
	public static final String QRCODE_KEY_CUST_CODE = "CUST_CODE";
	public static final String QRCODE_KEY_CUST_MTRL_CODE = "CUST_MTRL_CODE";
	public static final String QRCODE_KEY_DC = "DC";
	public static final String QRCODE_KEY_MF_DATE = "MF_DATE";
	public static final String QRCODE_KEY_LOTNO = "LOTNO";
	public static final String QRCODE_KEY_UNIT = "UNIT";
	public static final String QRCODE_KEY_PACK_QTY = "PACK_QTY";
	public static final String QRCODE_KEY_MTRL_NAME = "MTRL_NAME";
	public static final String QRCODE_KEY_PO_CODE = "PO_CODE";
	public static final String QRCODE_KEY_IS_LED = "IS_LED";
	public static final String QRCODE_KEY_SKU_CODE = "SKU_CODE";
	public static final String QRCODE_KEY_IS_MSD = "IS_MSD";
	public static final String QRCODE_KEY_MSD_LV_CODE = "MSD_LV_CODE";
	public static final String QRCODE_KEY_SIZE = "SIZE";
	public static final String QRCODE_KEY_QTY = "QTY";
	public static final String QRCODE_KEY_MF_CODE = "MF_CODE";
	public static final String QRCODE_KEY_MF_MTRL_CODE = "MF_MTRL_CODE";
	public static final String QRCODE_KEY_IS_URGENT = "IS_URGENT";
	public static final String QRCODE_KEY_IS_STS = "IS_STS";
	public static final String QRCODE_KEY_ERP_LOTNO = "ERP_LOTNO";
	public static final String QRCODE_KEY_EXTEND1 = "EXTEND1";
	public static final String QRCODE_KEY_EXTEND2 = "EXTEND2";
	public static final String QRCODE_KEY_EXTEND3 = "EXTEND3";
	public static final String QRCODE_KEY_EXT_LPN = "EXT_LPN";

	/** 盘点策略 */
	public static final class WmsTs {
		/** 盘点策略编码 */
		public static enum ConfigCode {
			/** 最大盘点倍数 */
			CONFIG_MAX_MP(WmsTs.CONFIG_MAX_MP.CONFIG_MAX_MP_ONE),
			/** 盘点模式 */
			CONFIG_LP_TYPE(WmsTs.CONFIG_LP_TYPE.CONFIG_LP_TYPE_ONE),
			/** 盘点平账类型 */
			CONFIG_FLAT_TYPE(WmsTs.CONFIG_FLAT_TYPE.CONFIG_FLAT_TYPE_TWO),
			/** 盘点ERP队列交易模式 */
			CONFIG_TS_ERP_QUEUE_TYPE(WmsTs.CONFIG_TS_ERP_QUEUE_TYPE.CONFIG_TS_ERP_QUEUE_TYPE_ONE),
			/** 物料交易模式 */
			CONFIG_MTRL_QUEUE_TYPE(WmsTs.CONFIG_MTRL_QUEUE_TYPE.CONFIG_MTRL_QUEUE_TYPE_ONE),
			/** 自定义盘点锁定模式 */
			CONFIG_CT_TYPE(WmsTs.CONFIG_CT_TYPE.CONFIG_CT_TYPE_ONE);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 盘点单据编码 */
		public static enum BiCode {
			/** 盘点单编码 */
			WMS_TS_CODE,
			/** 盘点方案编码 */
			WMS_TSS_CODE
		}

		/** 最大盘点倍数策略 */
		public static final class CONFIG_MAX_MP {
			/** 最大盘点模式策略 1倍 */
			public static final Integer CONFIG_MAX_MP_ONE = 1;
		}

		/** 盘点模式策略 */
		public static final class CONFIG_LP_TYPE {
			/** 盘点模式策略 1 默认 */
			public static final Integer CONFIG_LP_TYPE_ONE = 1;
			/** 盘点模式策略 2 粗盘 */
			public static final Integer CONFIG_LP_TYPE_TOW = 2;
		}

		/** 盘点平账类型策略 */
		public static final class CONFIG_FLAT_TYPE {
			/** 盘点平账类型策略 1 LPN */
			public static final Integer CONFIG_FLAT_TYPE_ONE = 1;
			/** 盘点平账类型策略 2 物料编码 */
			public static final Integer CONFIG_FLAT_TYPE_TWO = 2;
		}

		/** 盘点ERP队列交易模式策略 */
		public static final class CONFIG_TS_ERP_QUEUE_TYPE {
			/** 盘点ERP队列交易模式策略 1 单笔模式 */
			public static final Integer CONFIG_TS_ERP_QUEUE_TYPE_ONE = 1;
			/** 盘点ERP队列交易模式策略 2 盘盈盘亏模式 */
			public static final Integer CONFIG_TS_ERP_QUEUE_TYPE_TWO = 2;
		}

		/** 物料交易模式策略 */
		public static final class CONFIG_MTRL_QUEUE_TYPE {
			/** 物料交易模式策略 1 物料 */
			public static final Integer CONFIG_MTRL_QUEUE_TYPE_ONE = 1;
			/** 物料交易模式策略 2 物料+批次 */
			public static final Integer CONFIG_MTRL_QUEUE_TYPE_TWO = 2;
			/** 物料交易模式策略 3 物料+SKU */
			public static final Integer CONFIG_MTRL_QUEUE_TYPE_THREE = 3;
			/** 物料交易模式策略 4 物料+批次+SKU */
			public static final Integer CONFIG_MTRL_QUEUE_TYPE_FOUR = 4;
		}

		/** 最大盘点倍数策略 */
		public static final class CONFIG_CT_TYPE {
			/** 自定义盘点锁定模式策略 1 静态 */
			public static final Integer CONFIG_CT_TYPE_ONE = 1;
			/** 自定义盘点锁定模式策略 2 动态 */
			public static final Integer CONFIG_CT_TYPE_TWO = 2;
		}

		/** 方案类型 */
		public static final class TSS_TYPE {
			/** 循环盘点方案 1 */
			public static final Integer TSS_TYPE_ONE = 1;
			/** 自定义盘点方案 2 */
			public static final Integer TSS_TYPE_TOW = 2;
		}

		/** 盘点单类型 */
		public static final class TS_TYPE {
			/** 循环盘点单 */
			public static final Integer TS_TYPE_ONE = 1;
			/** 自定义盘点单 */
			public static final Integer TS_TYPE_TWO = 2;
			/** 散料盘点 */
			public static final Integer TS_TYPE_THREE = 3;
		}

		/** LPN盘点状态 */
		public static final class TS_LPN_STAT {
			/** 未盘 */
			public static final Integer TS_LPN_STAT_ZERO = 0;
			/** 已盘 */
			public static final Integer TS_LPN_STAT_ONE = 1;
		}

		/** 盘点单状态 */
		public static final class TS_STAT {
			/** 已开始 */
			public static final Integer TS_STAT_ONE = 1;
			/** 盘点中 */
			public static final Integer TS_STAT_TWO = 2;
			/** 已结束 */
			public static final Integer TS_STAT_THREE = 3;
			/** 已平账 */
			public static final Integer TS_STAT_FOUR = 4;
		}

		/** 盘点单物料明细盘点状态 */
		public static final class IS_BTS {
			/** 已盘 */
			public static final String IS_BTS_Y = "Y";
			/** 未盘 */
			public static final String IS_BTS_N = "N";
		}

		/** 盘点方式 */
		public static final class TS_LPN_MEDEL {
			/** 默认 */
			public static final Integer TS_LPN_MEDEL_ONE = 1;
			/** 点盘数 */
			public static final Integer TS_LPN_MEDEL_TWO = 2;
		}

		/** 盘点单LPN明细平账状态 */
		public static final class IS_POST {
			/** 已平账 */
			public static final String IS_POST_Y = "Y";
			/** 未平账 */
			public static final String IS_POST_N = "N";
		}

		/** 未盘物料处理方式 */
		public static final class UN_TS_TYPE {
			/** 未知 */
			public static final Integer UN_TS_TYPE_ONE = 1;
			/** 盘亏 */
			public static final Integer UN_TS_TYPE_TOW = 2;
			/** 无差异 */
			public static final Integer UN_TS_TYPE_THREE = 3;
		}

		/** 排序类型 */
		public static final class OB_RUTE {
			/** 升序 ASC */
			public static final String OB_RUTE_ASC = "ASC";
			/** 降序 DESC */
			public static final String OB_RUTE_DESC = "DESC";
		}

		/** 循环盘点方案 */
		public static final class WmsTsSch {

			/** 盘点任务运算规则 */
			public static final class TSS_LP_DIS {
				/** 按盘点物料属性 1 */
				public static final Integer TSS_LP_DIS_ONE = 1;
				/** 按盘点物料属性+仓库 2 */
				public static final Integer TSS_LP_DIS_TWO = 2;
			}

			/** 盘点任务清单创建规则 */
			public static final class DIV_STORE {
				/** 默认 */
				public static final String DIV_STORE_ONE = "1";
				/** 按仓库 */
				public static final String DIV_STORE_TWO = "2";
			}

			/** 循环盘点物料属性 */
			public static final class TSS_KEY {
				/** ABC分类 */
				public static final String BS_MTRL$MTRL_LEV = "BS_MTRL.MTRL_LEV";
				/** 分类编码 */
				public static final String BS_MTRL_TYPE$MTYPE_CODE = "BS_MTRL_TYPE.MTYPE_CODE";
				/** 客户编码 */
				public static final String BS_CUST$CUST_CODE = "BS_CUST.CUST_CODE";
			}

			/** 排序规则 */
			public static final class OB_RUTE {
				/** 客户编码 */
				public static final String BS_CUST$CUST_CODE = "BS_CUST.CUST_CODE";
				/** 物料编码 */
				public static final String BS_MTRL$MTRL_CODE = "BS_MTRL.MTRL_CODE";
				/** 分类编码 */
				public static final String BS_MTRL_TYPE$MTYPE_CODE = "BS_MTRL_TYPE.MTYPE_CODE";
				/** 仓库编码 */
				public static final String BS_STORE$STORE_CODE = "BS_STORE.STORE_CODE";
				/** 储位编码 */
				public static final String BS_STORELOC$STORELOC_CODE = "BS_STORELOC.STORELOC_CODE";
				/** 货架编码 */
				public static final String BS_STORERACK$STORERACK_CODE = "BS_STORERACK.STORERACK_CODE";
				/** 库区编码 */
				public static final String BS_STORESUB$STORESUB_CODE = "BS_STORESUB.STORESUB_CODE";
			}

		}

		/** 循环盘点日历 */
		public static final class WmsTsSchCal {

			/** 剩余任务分配模式 */
			public static final class TS_REJOB_MODEL {
				/** 周期不变 */
				public static final Integer TS_REJOB_MODEL_ONE = 1;
				/** 周期延迟 */
				public static final Integer TS_REJOB_MODEL_TWO = 2;
			}

		}

		/** 自定义盘点方案 */
		public static final class WmsTsSchRgCt {
			/** 字段对应别名 */
			public static final Map<String, Object> alias = new HashMap<String, Object>();
			static {
				alias.put("mtrl_id", "mtrl");
				alias.put("store_id", "store");
				alias.put("bs_storesub_id", "sub");
				alias.put("cust_id", "cust");
				alias.put("bs_storerack_id", "rack");
				alias.put("bs_storeloc_id", "loc");
				alias.put("lotno", "b");
			}
		}

		/** 排除类型 */
		public static enum Screen {
			/** 物料Id */
			MTRL_ID,
			/** 物料Id+仓库Id */
			MTRL_ID_STORE_ID
		}

	}

	/** 盘点策略 */
	public static final class WmsTsStrategy {
		/** 盘点策略编码 */
		public static enum ConfigCode {
			/** 自定义盘点锁定模式 */
			CONFIG_CT_TYPE(WmsTsStrategy.CONFIG_CT_TYPE.STATIC);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 自定义盘点锁定模式策略 */
		public static final class CONFIG_CT_TYPE {
			/** 静态:1 */
			public static final Integer STATIC = 1;
			/** 动态:2 */
			public static final Integer DYNAMIC = 2;
		}
	}
	
	/** 退料策略 */
	public static final class WmsMw {
		/** 退料策略编码 */
		public static enum ConfigCode {
			/** 最大退料倍数 */
			CONFIG_MAX_MW(WmsMw.CONFIG_MAX_MW.CONFIG_MAX_MW_ONE),
			/** 生产退料确认范围 */
			CONFIG_RETURN_MTRL_CFM_RANGE(""),
			/** 退料检验范围 */
			CONFIG_RETURN_MTRL_QC_RANGE(""),
			/** 允许退料单据类型 */
			CONFIG_RETURN_MTRL_BILL_TYPE_RANGE(""),
			/** 良品退料仓库交易模式 */
			CONFIG_GOOD_MTRL_RETURN_MTRL_STORE_TRADE_MODE(WmsMw.RETURN_MTRL_STORE_TRADE_MODE.SRC_STORE),
			/** 不良品退料仓库交易模式 */
			CONFIG_BAD_MTRL_RETURN_MTRL_STORE_TRADE_MODE(WmsMw.RETURN_MTRL_STORE_TRADE_MODE.SRC_STORE),
			/** 不良品退料仓库交易模式 */
			CONFIG_BAD_MTRL_RETURN_MTRL_STORE_CODE(""),
			/** 单据类核算超退模式 */
			CONFIG_OVERBK_MODE(WmsMw.CONFIG_OVERBK_MODE.ACTUAL),
			/** 物料超退模式 */
			CONFIG_MTRL_OVERBK_MODE(WmsMw.CONFIG_MTRL_OVERBK_MODE.ALLOW);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 退料策略 */
		public static final class CONFIG_MAX_MW {
			/** 退料策略 默认为1倍 */
			public static final Integer CONFIG_MAX_MW_ONE = 1;
		}

		/** 退料仓库交易模式 */
		public static final class RETURN_MTRL_STORE_TRADE_MODE {
			/** 1、退回原仓 */
			public static final Integer SRC_STORE = 1;
			/** 2、退回指定仓库 */
			public static final Integer SELECT_STORE = 2;
			/** 3、退回原仓再调拨 */
			public static final Integer SRC_STORE_AND_TRANS = 3;
		}

		/** 单据类核算超退模式 */
		public static final class CONFIG_OVERBK_MODE {
			/** 以实际需求 */
			public static final Integer ACTUAL = 1;
			/** 以净需求 */
			public static final Integer CLEAN = 2;
		}

		/** 物料超退模式 */
		public static final class CONFIG_MTRL_OVERBK_MODE {
			/** 允许 */
			public static final Integer ALLOW = 0;
			/** 不允许 */
			public static final Integer NOT = 1;
		}
	}

	/** 出库策略 */
	public static final class WmsOutStockStrategy {
		/** 出库策略编码 */
		public static enum ConfigCode {
			/** 散料定义 */
			CONFIG_BM_DEFINITION(WmsOutStockStrategy.CONFIG_BM_DEFINITION.DEFAULT),
			/** 批次（原 ‘出库规则-批次’） */
			CONFIG_OUT_RULE_LOTNO(WmsOutStockStrategy.CONFIG_OUT_RULE_LOTNO.DEFAULT),
			/** 出库规则 */
			CONFIG_OUT_RANGE(WmsOutStockStrategy.CONFIG_OUT_RANGE.DEFAULT),
			/** A材出库粒度 */
			CONFIG_A_OUT_RANGE(WmsOutStockStrategy.CONFIG_A_OUT_RANGE.DEFAULT),
			/** B材出库粒度 */
			CONFIG_B_OUT_RANGE(WmsOutStockStrategy.CONFIG_B_OUT_RANGE.DEFAULT),
			/** C材出库粒度 */
			CONFIG_C_OUT_RANGE(WmsOutStockStrategy.CONFIG_C_OUT_RANGE.DEFAULT),
			/** 需求超发核算方法 */
			CONFIG_OVER_MODE(WmsOutStockStrategy.CONFIG_OVER_MODE.DEFAULT),
			/** A材允许超发范围 */
			CONFIG_A_OVER_RANGE(WmsOutStockStrategy.CONFIG_A_OVER_RANGE.DEFAULT),
			/** B材允许超发范围 */
			CONFIG_B_OVER_RANGE(WmsOutStockStrategy.CONFIG_B_OVER_RANGE.DEFAULT),
			/** C材允许超发范围 */
			CONFIG_C_OVER_RANGE(WmsOutStockStrategy.CONFIG_C_OVER_RANGE.DEFAULT),
			/** 虚拟库范围 */
			// CONFIG_VM_RANGE(""),// 使用电子策略（elec）
			/** 出库品质检验范围 */
			// CONFIG_OUT_QC_RANGE(""),// 使用电子策略（elec）
			/** 保税物料发料模式 */
			CONFIG_BONDED_OUT_CONTROL_TYPE(WmsOutStockStrategy.CONFIG_BONDED_OUT_CONTROL_TYPE.DEFAULT),
			/** 出库交易模式 */
			CONFIG_OUT_TRADE_TYPE(WmsOutStockStrategy.CONFIG_OUT_TRADE_TYPE.DEFAULT),
			/** 散料优先出库范围 */
			CONFIG_BM_FIRST_OUT_RANGE(WmsOutStockStrategy.CONFIG_BM_FIRST_OUT_RANGE.DEFAULT),
			/** 代管仓仓库ID */
			WMS_SHIPMENT_PROXY_STORE("");

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 策略应用范围 */
		public static final class ApplyRange {
			/** 出库单 */
			public static final String OUT = "1";
		}

		/** 出库规则-批次策略 */
		public static final class CONFIG_OUT_RULE_LOTNO {
			/** 默认 */
			public static final Integer DEFAULT = 3;
			/** 严格管控相同 */
			public static final Integer CONTROL = 1;
			/** 优先同批次后其它批次 */
			public static final Integer OTHER = 2;
			/** 不管控 */
			public static final Integer NOT_CONTROL = 3;
		}

		/** 出库规则策略 */
		public static final class CONFIG_OUT_RANGE {
			/** 默认 */
			public static final String DEFAULT = "FIFO";
			/** 先进先出 */
			public static final String FIFO = "FIFO";
			/** 后进先出 */
			public static final String LIFO = "LIFO";
		}

		/** A材出库粒度策略 */
		public static final class CONFIG_A_OUT_RANGE {
			/** 默认 */
			public static final Integer DEFAULT = 1;
		}

		/** B材出库粒度策略 */
		public static final class CONFIG_B_OUT_RANGE {
			/** 默认 */
			public static final Integer DEFAULT = 1;
		}

		/** C材出库粒度策略 */
		public static final class CONFIG_C_OUT_RANGE {
			/** 默认 */
			public static final Integer DEFAULT = 1;
		}

		/** 需求超发核算方法策略 */
		public static final class CONFIG_OVER_MODE {
			/** 1:默认 */
			public static final Integer DEFAULT = 1;
			/** 1:实际需求 */
			public static final Integer ACTUAL = 1;
			/** 2:净需求 */
			public static final Integer CLEAN = 2;
		}

		/** A材允许超发范围策略 */
		public static final class CONFIG_A_OVER_RANGE {
			/** 1:默认 */
			public static final String DEFAULT = "";
			/** 1:出库单 */
			public static final String OUT = "1";
			/** 2:其他出库单 */
			public static final String OTHER = "2";
			/** 3:自定义申请单 */
			public static final String CUSTOM = "3";
		}

		/** B材允许超发范围策略 */
		public static final class CONFIG_B_OVER_RANGE {
			/** 1:默认 */
			public static final String DEFAULT = "";
			/** 1:出库单 */
			public static final String OUT = "1";
			/** 2:其他出库单 */
			public static final String OTHER = "2";
			/** 3:自定义申请单 */
			public static final String CUSTOM = "3";
		}

		/** C材允许超发范围策略 */
		public static final class CONFIG_C_OVER_RANGE {
			/** 1:默认 */
			public static final String DEFAULT = "";
			/** 1:出库单 */
			public static final String OUT = "1";
			/** 2:其他出库单 */
			public static final String OTHER = "2";
			/** 3:自定义申请单 */
			public static final String CUSTOM = "3";
		}

		/** 虚拟库范围策略 */
		// public static final class CONFIG_VM_RANGE {
		// /** 生产出库单 */
		// public static final String WMS_PRODUCT_OUT_MN = "1";
		// /** 维修领料单 */
		// public static final String WMS_REPIRE_GET_MTRL = "2";
		// /** 研发领料单 */
		// public static final String WMS_DEV_GET_MTRL = "3";
		// /** 其它出库单 */
		// public static final String WMS_OTHER_OUT_MN = "4";
		// /** 自定义申请单 */
		// public static final String WMS_DEFINE_OUT_MN = "5";
		// }

		/** 出库品质检验范围策略 */
		// public static final class CONFIG_OUT_QC_RANGE {
		// /** 生产出库单 */
		// public static final String WMS_PRODUCT_OUT_MN = "1";
		// /** 其它出库单 */
		// public static final String WMS_OTHER_OUT_MN = "2";
		// /** 自定义申请单 */
		// public static final String WMS_DEFINE_OUT_MN = "3";
		// }

		/** 保税物料发料模式 */
		public static final class CONFIG_BONDED_OUT_CONTROL_TYPE {
			/** 默认 */
			public static final Integer DEFAULT = 0;
			/** 不管控 */
			public static final Integer NOT_CONTROL = 0;
			/** 严格管控 */
			public static final Integer CONTROL = 1;
			/** 优先使用 */
			public static final Integer FIRST = 2;
		}

		/** 出库交易模式 */
		public static final class CONFIG_OUT_TRADE_TYPE {
			/** 默认 */
			public static final Integer DEFAULT = 0;
			/** 0:单据编码 */
			public static final Integer BILL_CODE = 0;
			/** 1:波次编码 */
			public static final Integer WAVE_CODE = 1;
		}
		
		/** 散料优先出库范围 */
		public static final class CONFIG_BM_FIRST_OUT_RANGE {
			/** "":默认 */
			public static final String DEFAULT = "";
			/** 生产出库单 */
			public static final String WMS_PRODUCT_OUT_MN = "1";
			/** 维修领料单 */
			public static final String WMS_REPIRE_GET_MTRL = "4";
			/** 研发领料单 */
			public static final String WMS_DEV_GET_MTRL = "5";
			/** 其它出库单 */
			public static final String WMS_OTHER_OUT_MN = "2";
			/** 自定义申请单 */
			public static final String WMS_DEFINE_OUT_MN = "3";
		}
		
		/** 散料定义策略 */
		public static final class CONFIG_BM_DEFINITION {
			/** 默认 以物料最小包装数为基准，但最小包装数为0,默认整盘 ：1 */
			public static final Integer DEFAULT = 1;
			/** 以物料最小包装数为基准，但最小包装数为0,默认整盘 ：1 */
			public static final Integer PACK_QTY_OR_LPN_QTY = 1;
			/** 以LPN或批次初始收料数量为基准 ：2 */
			public static final Integer INIT_LQTY = 2;
			/** 当物料最小包装数>0，以物料最小包装数为基准,否则以LPN或批次初始收料数量为基准 ：3 */
			public static final Integer PACK_QTY_OR_INIT_LQTY = 3;
		}
		
	}


	/** Wms本机参数编码 **/
	public static enum WmsLocalPrm {
		/** 烘烤管理设置烤箱的记录 */
		PRM_WMS_MSD_HK_BX,
		/** 生产出库单(LPN)是否按节拍出库（一次性备足）参数 */
		PRM_WMS_MN_PROD_ONE_LPN,
		/** 生产出库单(MTRL)是否按节拍出库（一次性备足）参数 */
		PRM_WMS_MN_PROD_ONE_MTRL,
		/** LPN在库分拆设置打印LPN本机参数 */
		PRM_WMS_LPN_PART_IN_STORE;
	}

	/** 单据编码 */
	public static enum BiCode {
		/** 出库分析编码 */
		WMS_OS_ANALY_CODE,
		/** 波次编码 */
		WMS_WAVE_CODE,
		/** 调拨编码 */
		WMS_ALLOT_CODE
	}

	/** 公共常量 */
	public static final class Public {

		/** 日期格式 */
		public static final class DateFormat {

			/** 年月日时分秒 */
			public static final String DATE_TIME = "yyyy-MM-dd HH:mm:ss";
			/** 年月日 */
			public static final String DATE = "yyyy-MM-dd";
		}

	}

	/** 波次状态 */
	public static final class WaveStat {
		/** 0:未生成拣货任务 */
		public static final Integer NO_TASK = 0;
		/** 1:已生成拣货任务 */
		public static final Integer TASK = 1;
	}

	/** 拣货状态 */
	public static final class PickStat {
		/** 0:未开始 */
		public static final Integer NO_BEGIN = 0;
		/** 1:拣货中 */
		public static final Integer PICKING = 1;
		/** 2:已完成 */
		public static final Integer DONE = 2;
	}

	/** 拣货排序规则 */
	public static final class WavePickSortRule {
		/** 1:物料 */
		public static final Integer MTRL = 1;
		/** 2:货架 */
		public static final Integer RACK = 2;
		/** 3:储位 */
		public static final Integer LOC = 3;
	}

	/** 是否全部 */
	public static final class IsWhole {
		/** Y:是 */
		public static final String YES = "Y";
		/** N:否 */
		public static final String NO = "N";
	}

	/** 物料超发类型 */
	public static final class OmtrlType {
		/** 0.默认参数控制 */
		public static final Integer DEFAULT = 0;
		/** 1.不允许超发 */
		public static final Integer NOT = 1;
		/** 2.A材允许超发 */
		public static final Integer A = 2;
		/** 3.BC材允许超发 */
		public static final Integer BC = 3;
		/** 4.ABC材允许超发 */
		public static final Integer ABC = 4;
	}

	/** 波次拣货扫描类型 */
	public static final class WaveScanType {
		/** 1:LPN */
		public static final Integer LPN = 1;
		/** 2:物料 */
		public static final Integer MTRL = 2;
		/** 3:保存 */
		public static final Integer SAVE = 3;
	}

	/** 是否继续 */
	public static final class IsKeep {
		/** 1:是 */
		public static final String YES = "Y";
		/** 2:否 */
		public static final String NO = "N";
	}

	/** 返回状态码 */
	public static final class ResultCode {
		/** 成功:101 */
		public static final String SUCCESS = "101";
		/** 异常:102 */
		public static final String ERROR = "102";
		/** 盲扫:103 */
		public static final String BLIND_SCAN = "103";
		/** 列表:104 */
		public static final String LIST = "104";
		/** 确认:105 */
		public static final String CONFIRM = "105";
		/** 单据完成:106 */
		public static final String DONE = "106";
		/** 当前完成:107 */
		public static final String THIS_DONE = "107";
		/** 当前未完成:108 */
		public static final String THIS_NOT_DONE = "108";
	}

	/** 波次策略 */
	public static final class WmsWaveStrategy {
		/** 波次策略编码 */
		public static enum ConfigCode {
			/** 拣货方式 */
			CONFIG_PICK_METHOD(WmsConstants.WmsWaveStrategy.CONFIG_PICK_METHOD.EDGE);

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 拣货方式 */
		public static final class CONFIG_PICK_METHOD {
			/** 1:边拣边分 */
			public static final Integer EDGE = 1;
			/** 2.先拣后分 */
			public static final Integer BEFORE = 2;
		}

	}

	/** 申请单单据状态 */
	public static final class AUX_STAT {
		/** 参数编码 */
		public static final String PARAMETER_TYPE = "AUX_STAT";
		/** 制单中 */
		public static final Integer AUX_STAT_0 = 0;
		/** 已提交 */
		public static final Integer AUX_STAT_1 = 1;
		/** 已审核 */
		public static final Integer AUX_STAT_2 = 2;
		/** 待仓库确认 */
		public static final Integer AUX_STAT_3 = 3;
		/** 仓库确认中 */
		public static final Integer AUX_STAT_4 = 4;
		/** 已关闭 */
		public static final Integer AUX_STAT_5 = 5;
	}

	/** 科研领料单单据状态 */
	public static final class MN_AUDIT_STAT {
		/** 参数编码 */
		public static final String PARAMETER_CODE = "MN_AUDIT_STAT";
		/** 制单中 */
		public static final Integer MN_AUDIT_STAT_0 = 0;
		/** 已提交 */
		public static final Integer MN_AUDIT_STAT_1 = 1;
		/** 已审核 */
		public static final Integer MN_AUDIT_STAT_2 = 2;
		/** 已关闭 */
		public static final Integer MN_AUDIT_STAT_3 = 3;
	}

	/** 领料策略 */
	public static final class WmsPickingStrategy {
		/** 领料策略编码 */
		public static enum ConfigCode {
			/** 领料模式 */
			CONFIG_PICKING_MODE(WmsPickingStrategy.CONFIG_PICKING_MODE.CONFIRM), CONFIG_PICK_METHOD(WmsPickingStrategy.CONFIG_PICKING_MODE.CONFIRM),
			/** 领料确认 */
			CONFIG_RCV_CONFIRM(""),
			/** 领料交易 */
			CONFIG_RCV_TRAN("");

			private Object dftVal;

			private ConfigCode(Object dftVal) {
				this.dftVal = dftVal;
			}

			public Object getDftVal() {
				return dftVal;
			}
		}

		/** 领料模式 */
		public static final class CONFIG_PICKING_MODE {
			/** 0:不启用领料 */
			public static final Integer NOT = 0;
			/** 1:领料确认 */
			public static final Integer CONFIRM = 1;
			/** 2.领料交易 */
			public static final Integer TRADE = 2;
		}

		/** 领料确认策略 */
		public static final class CONFIG_RCV_CONFIRM {
			/** 1、生产出库单 */
			public static final String WMS_PRODUCT_OUT_MN = "1";
			/** 2、其它出库单 */
			public static final String WMS_OTHER_OUT_MN = "2";
			/** 3、自定义申请单 */
			public static final String WMS_DEFINE_OUT_MN = "3";
			/** 4、不良品出库申请单 */
			public static final String WMS_BAD_OUT_MN = "4";
			/** 5、维修领料单-无工艺段 */
			public static final String WMS_REPIRE_GET_MTRL = "5";
			/** 6、研发领料单 */
			public static final String WMS_DEV_GET_MTRL = "6";
		}

		/** 领料交易策略 */
		public static final class CONFIG_RCV_TRAN {
			/** 1、生产出库单 */
			public static final String WMS_PRODUCT_OUT_MN = "1";
			/** 2、其它出库单 */
			public static final String WMS_OTHER_OUT_MN = "2";
			/** 3、自定义申请单 */
			public static final String WMS_DEFINE_OUT_MN = "3";
			/** 4、不良品出库申请单 */
			public static final String WMS_BAD_OUT_MN = "4";
			/** 5、维修领料单-无工艺段 */
			public static final String WMS_REPIRE_GET_MTRL = "5";
			/** 6、研发领料单 */
			public static final String WMS_DEV_GET_MTRL = "6";
		}

	}

	/** 调拨单据状态 */
	public static final class AllotAuditStat {
		/** 1:建单 */
		public static final Integer CREATE = 1;
		/** 2:审核 */
		public static final Integer AUDIT = 2;
		/** 3:关闭 */
		public static final Integer CLOSE = 3;
	}

	/** 调拨状态 */
	public static final class AllotStat {
		/** 1:未开始 */
		public static final Integer NOT_START = 1;
		/** 2:调拨中 */
		public static final Integer ALLOT_IN = 2;
		/** 3:已完成 */
		public static final Integer DONE = 3;
	}

	/** 非LPN物料过账方式 */
	public static final class UnlpnMtrlTran {
		/** 1:实物确认 */
		public static final Integer CONFIRM = 1;
		/** 2:审核 */
		public static final Integer AUDIT = 2;
	}

	/** 调拨生成类型 */
	public static final class AllotSrcType {
		/** 1:手动 */
		public static final Integer MANUAL = 1;
		/** 2:自动 */
		public static final Integer AUTOMATIC = 2;
	}

	/** 调拨类型 */
	public static final class AllotType {
		/** 1:良品 */
		public static final Integer PRODUCTS = 1;
		/** 2:不良品 */
		public static final Integer NOT_PRODUCTS = 2;
	}

	/** 领料状态 */
	public static final class RcvStat {
		/** 0:未领料 */
		public static final Integer NOT = 0;
		/** 1:领料中 */
		public static final Integer CENTRE = 1;
		/** 2:领料完成 */
		public static final Integer DONE = 2;
	}

	/** 出库已提交队列 */
	public static final class IsWrqueue {
		/** Y:已提交 */
		public static final String YES = "Y";
		/** N:未提交 */
		public static final String NO = "N";
	}

	/** 领料 */
	public static final class isRcv {
		/** Y:已领料 */
		public static final String YES = "Y";
		/** N:未领料 */
		public static final String NO = "N";
	}

	/** 调拨排序规则 */
	public static final class AllotSortRule {
		/** 1:物料 */
		public static final Integer MTRL = 1;
		/** 2:储位 */
		public static final Integer LOC = 2;
	}

	/** 是否绑定储位 */
	public static final class IsBindStoreloc {
		/** Y:绑定 */
		public static final String YES = "Y";
		/** N:不绑定 */
		public static final String NO = "N";
	}

	/** 允许超调拨 */
	public static final class IsOfAllot {
		/** Y:允许 */
		public static final String YES = "Y";
		/** N:不允许 */
		public static final String NO = "N";
	}

	/** 允许超调拨计数类型 */
	public static final class AllotOfKey {
		/** 0:未知 */
		public static final Integer UNKNOWN = 0;
		/** 1:个数 */
		public static final Integer COUNT = 1;
		/** 2:数量 */
		public static final Integer QTY = 2;
		/** 3:百分比 */
		public static final Integer PERC = 3;
	}

	/** 领料类型 */
	public static final class RcvType {
		/** 0:不启用领料 */
		public static final Integer NOT = 0;
		/** 1:领料确认 */
		public static final Integer CONFIRM = 1;
		/** 2:领料交易 */
		public static final Integer TRAN = 2;
	}

	/** 生产退料已确认 */
	public static final class IsOnlineChk {
		/** Y:已确认 */
		public static final String YES = "Y";
		/** N:未确认 */
		public static final String NO = "N";
	}

	/** 仓库已确认 */
	public static final class InStockChk {
		/** Y:已确认 */
		public static final String YES = "Y";
		/** N:未确认 */
		public static final String NO = "N";
	}

	/** 申请单类型 */
	public static final class AuxType {
		/** 不良品退料申请单 */
		public static final int AuxType_1 = 1;
		/** 维修领料申请单 */
		public static final int AuxType_2 = 2;
		/** 补料申请单 */
		public static final int AuxType_3 = 3;
	}

	/** 交接方式 */
	public static final class HandoverType {
		/** 不启用交接 */
		public static final int HANDOVER_TYPE_0 = 0;
		/** 生产与仓库交接 */
		public static final int HANDOVER_TYPE_1 = 1;
	}

	/** 出库状态 */
	public static final class MnMpStat {
		/** 未出库:0 */
		public static final int NOT_OUT = 0;
		/** 出库中:1 */
		public static final int OUT_IN = 1;
		/** 出库完成:2 */
		public static final int DONE = 2;
	}

	/** 收发类型 */
	public static final class MnIoType {
		/** 发 */
		public static final Integer SEND = 1;
		/** 收 */
		public static final Integer RECEIVE = 2;
	}

	/** 出库类型 */
	public static final class MnSrcType {
		/** 手动:1 */
		public static final int MANUAL = 1;
		/** 单据类 */
		public static final int MNSRC_TYPE_1 = 1;
		/** 工单类 */
		public static final int MNSRC_TYPE_2 = 2;
		/** 其他 */
		public static final int MNSRC_TYPE_3 = 3;
	}

	/** 出库单类型 */
	public static final class WmsMnPmnType {
		/** 生产出库单 */
		public static final int WMS_MN_PMN_TYPE_1 = 1;
		/** 其它出库单 */
		public static final int WMS_MN_PMN_TYPE_2 = 2;
		/** 不良品出库申请单 */
		public static final int WMS_MN_PMN_TYPE_3 = 3;
		/** 供应商退货申请单 */
		public static final int WMS_MN_PMN_TYPE_4 = 4;
		/** 报废申请单 */
		public static final int WMS_MN_PMN_TYPE_5 = 5;
		/** 自定义申请单 */
		public static final int WMS_MN_PMN_TYPE_6 = 6;
		/** 电子行业类型-维修领料申请单 */
		public static final int WMS_MN_PMN_TYPE_7 = 7;
		/** 电子行业类型-研发领料申请单 */
		public static final int WMS_MN_PMN_TYPE_8 = 8;
		/** 电子行业类型-产品出货申请单 */
		public static final int WMS_MN_PMN_TYPE_11 = 11;
	}

	/** 出库单类型 */
	public static final class PmnType {
		/** 生产出库单 */
		public static final int PROD = 1;
		/** 其它出库单 */
		public static final int OTHER = 2;
		/** 供应商退货申请单 */
		public static final int SUP = 4;
		/** 报废申请单:5 */
		public static final int SCRAP = 5;
		/** 自定义申请单:6 */
		public static final int CUSTOM = 6;
		/** 电子行业类型-维修领料申请单 */
		public static final int REPAIR = 7;
		/** 电子行业类型-研发领料申请单 */
		public static final int DEV = 8;
		/** 生产补料单 */
		public static final int FEED = 9;
		/** 工单 */
		public static final int MO = 10;
		/** 产品出货申请单 */
		public static final int PROD_SELL = 11;
	}

	/** 启用OQC */
	public static final class EnableOqc {
		/** Y:已启用 */
		public static final String YES = "Y";
		/** N:未启用 */
		public static final String NO = "N";
	}

	/** 产品出货排序规则 */
	public static final class ProdSellSortRule {
		/** 物料:1 */
		public static final Integer MTRL = 1;
		/** 货架:2 */
		public static final Integer RACK = 2;
		/** 储位:3 */
		public static final Integer LOC = 3;
	}

	/** 指定物料属性 */
	public static final class PtmOppt {
		/** 不指定:0 */
		public static final Integer NOT = 0;
		/** 批次:1 */
		public static final Integer LOTNO = 1;
		/** 批次+SKU:2 */
		public static final Integer LOTNO_SKU = 2;
		/** SKU:3 */
		public static final Integer SKU = 3;
	}
	
	/** 是否整个容器 */
	public static final class IsWholePack {
		/** Y:是 */
		public static final String YES = "Y";
		/** N:否 */
		public static final String NO = "N";
	}
	
	/** 出库放行属性 */
	public static final class ClsOptsType {
		/** 质量状态:1 */
		public static final Integer QLTY_STAT = 1;
		/** 已红牌:2 */
		public static final Integer IS_RC = 2;
		/** 已报废:3 */
		public static final Integer IS_SCRAP = 3;
		/** 物料已超期:4 */
		public static final Integer OVER = 4;
		/** 湿敏元器件开封已超时:5 */
		public static final Integer OPEN_OVER = 5;
		/** 检验客户编码:6 */
		public static final Integer CHECK_CUST = 6;
		/** 检验供应商编码:7 */
		public static final Integer CHECK_SUP = 7;
	}
	
	public static final class AlarmLogStat{
		/** 预警产生:0 */
		public static final Integer WARNING = 0;
		/** 预警解除:1 */
		public static final Integer WARNING_CANCEL = 1;
	}
	
	/** 品质是否已确认 */
	public static final class IsQcScfm{
		/** Y:是 */
		public static final String YES = "Y";
		/** N:否 */
		public static final String NO = "N";
	}
	
	/**免检*/
	public static final class IsSts{
		/** Y:是 */
		public static final String YES = "Y";
		/** N:否 */
		public static final String NO = "N";
	}
	
	/**免检*/
	public static final class IsScfm{
		/** Y:是 */
		public static final String YES = "Y";
		/** N:否 */
		public static final String NO = "N";
	}
	
	/**控制类型*/
	public static final class FinaceType{
		/**1：指定日期进行交易*/
		public static final String ING = "1";
		/**2：指定日期停止交易*/
		public static final String STOP = "2";
	}
	
	/** IMS数据处理状态*/
	public static final class ImsStatus {
		/** 0: 待处理  */
		public static final Integer TO_BE_PROCESSED = 0;
		/** 1: 正常完成  */
		public static final Integer OK = 1;
		/** 2: 处理异常  */
		public static final Integer EXCEPTION = 2;
	}
	
	/** 队列状态 */
	public static final class QueueStatus {
		/** 0: 待发送  */
		public static final Integer TO_BE_SEND = 0;
		/** 1: 待执行  */
		public static final Integer TO_BE_PERFORM = 1;
		/** 2: 待IMS处理  */
		public static final Integer TO_BE_IMS_PROCESSED = 2;
		/** 3: 正常完成  */
		public static final Integer OK = 3;
		/** 4: 发送失败  */
		public static final Integer SEND_FAILED = 4;
		/** 5: 执行失败（料塔返回异常）  */
		public static final Integer PERFORM_FAILED = 5;
		/** 6: IMS处理（同步）失败  */
		public static final Integer IMS_PROCESSED_FAILED_TB = 6;
		/** 7: IMS处理（异步）失败  */
		public static final Integer IMS_PROCESSED_FAILED_YB = 7;
		/** 8：取消执行  */
		public static final Integer CANCLE_PERFORM = 8;
	}
	
	/**仓储执行状态*/
	public static final class ExecStatus {
		/** 0: 待处理  */
		public static final Integer TO_BE_PROCESSED = 0;
		/** 1: 正常完成  */
		public static final Integer OK = 1;
		/** 2: 设备报警  */
		public static final Integer WARNING = 2;
		/** 3: 取消操作  */
		public static final Integer CANCLE_OPERATE = 3;
		/** 4: 取消失败  */
		public static final Integer CANCLE_FAILED = 4;
		/** 5: 取消成功  */
		public static final Integer CANCLE_SUCCESS = 5;
		/** 6: 存料有料  */
		public static final Integer IN_HAS_MTRL = 6;
		/** 7: 取料无料  */
		public static final Integer OFF_NOT_MTRL = 7;
	}
	
	/** 请求状态 */
	public static final class SendStatus {
		/** 0: 待请求  */
		public static final Integer TO_BE_SEND = 0;
		/** 1: 发送成功  */
		public static final Integer OK = 1;
		/** 2: 发送失败  */
		public static final Integer ERROR = 2;
	}
	
	/** 操作类型 */
	public static final class SwhOpType {
		/** 1: 存料  */
		public static final Integer IN = 1;
		/** 2: 取料  */
		public static final Integer OFF = 2;
		/** 3: 清除料塔有料（只更新料塔文件）  */
		public static final Integer SET_STORELOC_EMPTY = 3;
		/** 4: 清空所有储位（取出料塔所有物料）  */
		public static final Integer CLEAN_ALL_STORELOC = 4;
		/** 5: 查询所有储位有无料（只获取料塔文件）  */
		public static final Integer GET_ALL_STORELOC_INFO = 5;
		/** 6: 查询指定储位真实有无料（转到储位传感器判断）  */
		public static final Integer GET_STORELOC_INFO = 6;
		/** 7: 测试  */
		public static final Integer TEST = 7;
		/** 8：自检  */
		public static final Integer INSPECT = 8;
	}
	
	/**IMS数据处理类型 */
	public static final class ImsType {
		/** 0:无处理  */
		public static final Integer NOT = 0;
		/** 1:绑定储位  */
		public static final Integer BIND_STORELOC = 1;
		/** 2:解除绑定  */
		public static final Integer UNBIND = 2;
		/** 3:首套备料  */
		public static final Integer MP_FIRST = 3;
		/** 4:所有储位解除绑定  */
		public static final Integer UNBIND_ALL = 4;
		
		/** 6:低位预警备料  */
		public static final Integer MP_LOW_WARN = 6;
		/** 7:整工单备料  */
		public static final Integer MP_WHOLE_MO = 7;
		/** 8:异备 */
		public static final Integer MP_DIFF = 8;
		/** 9:非IMS工单备料  */
		public static final Integer MP_NOT_IMS = 9;
		/** 10:生产补料申请单 */
		public static final Integer PROD_SUPPLY = 10;
		/** 11:维修领料申请单 */
		public static final Integer REPAIR_PICKING = 11;
		/** 12:杂发申请单 - 其它出库单 */
		public static final Integer MN_OTHER = 12;
		/** 13:生产出库单 */
		public static final Integer MN_PROD = 13;
		/** 18：产品出货申请单 */
		public static final Integer MN_PROD_SELL = 18;
		/** 17：自定义申请单 */
		public static final Integer MN_CUSTOM = 17;
		/** 15：供应商退货申请单 */
		public static final Integer MN_SUP = 15;
		/** 21：调拨单 */
		public static final Integer ALLOT = 21;
	}
	
	/** 类型 */
	public static final class SwhDmdType {
		/** 0: 智能料塔 */
		public static final Integer SMART_WHSE = 0;
		/** 1:亮灯货架 */
		public static final Integer LIGHT_SHELF = 1;
	}
	
	public static final class StoreCode{
		
		public static final String TO_STORE_CODE = "DJZ_0101";
		
	}
	

    /** API 响应结果 */
    public static final class ApiRespResult {
        /** 0：成功 */
        public static final String SUCESS = "0";
        /** 1：参数相关错误 */
        public static final String PARAM_ERROR = "1";
        /** 6：重复发送，上层系统不需要重发 */
        public static final String REPEAT_ERROR = "6";
        /** 99：其他未知错误，调用失败后，可以重试 */
        public static final String OTHER_ERROR = "99";
        /** 100：该任务不存在，上层系统不需重发，需要人工介入处理 */
        public static final String TASK_NOTEXIST_ERROR = "100";
    }
    
}
